package com.knife.file.app;

import com.knife.file.domain.entity.KnifeFileInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 业务文件服务
 *
 * @author： 76875
 * @date： 2022/4/7 星期四 15:56
 * @description：
 * @modifiedBy：
 * @version: 1.0
 */
public interface KnifeFileInfoService {

    /**
     * 上传Multipart文件
     *
     * @param tenantId       租户Id
     * @param bucketName     桶
     * @param attachmentUuid 附件ID
     * @param directory      文件夹
     * @param fileName       文件名
     * @param docType        是否锁定文件
     * @param storageCode    存储编码
     * @param multipartFile  文件
     * @return 文件路径
     */
    KnifeFileInfo uploadMultipart(Long tenantId, String bucketName, String attachmentUuid, String directory, String fileName, Integer docType, String storageCode, MultipartFile multipartFile);


    /**
     * 上传文件
     *
     * @param tenantId       租户Id
     * @param bucketName     桶
     * @param attachmentUuid 附件ID
     * @param directory      文件夹
     * @param fileName       文件名
     * @param docType        是否锁定文件
     * @param storageCode    存储编码
     * @param filePath           文件
     * @return 文件路径
     */
    KnifeFileInfo uploadFile(Long tenantId, String bucketName, String attachmentUuid, String directory, String fileName, Integer docType, String storageCode, String filePath);



    /**
     * 根据id获取url
     * @description
     * @since 1.0
     * @version 1.0
     * @author tianhao.luo@hand-china.com
     * @date 2022/4/9 6:05 下午
     * @param fileIdList 文件id
     * @param tenantId 租户id
     * @return 文件访问urls
     */
    List<String> selectUrls(List<Long> fileIdList, Long tenantId);
}
